#pragma once
#include <map>
#include "ComboDropWnd.h"
#include "base/util/list_map.h"

namespace ui
{
	//--------------------------------MutilComboBody---------------------------------
	//--------------------------------MutilComboBody---------------------------------
	template<class ClassSelectMap>
	class  MutilComboTemplate;

	template<class ClassSelectMap>
	class UILIB_API MutilComboBody : public Storage
	{
	public:
		MutilComboBody(ComboBase<ClassSelectMap>* pCombo);
		virtual ~MutilComboBody(){};

		void ClearAllSelectItem();
		bool PushSelectItem(const std::vector<kvItem>& vecItem);

		virtual void InnerLayout() override;

		virtual void DragChildIndex(Control* pChild, std::size_t dstIndex, std::size_t srcIndex, bool bNotify) override;
	protected:
		virtual bool _RemoveElement(StorageElement* pElement, bool notify, bool resetPos) override;

	protected:
		ComboBase<ClassSelectMap>* m_pCombo{ nullptr };
	};


} // namespace ui

